For example, generally speaking, the disclosure is thus directed to the communication of data through a so-called network-on-chip system between electronic devices each connected to an on-chip bus.
As a matter of fact, researchers have recently proposed the network-on-chip concept (NoC) to overcome the limitations relating to the huge efforts necessary to adequately design on-chip communication systems.
NoC aims at providing scalable and flexible communication architectures with suitable performances. NoCs are based on a packet switched communication concept and are mainly composed of three NoCs modules, namely: a router, a network interface (NI) and a link.
As concerns the data format, data transferred within a NoC are generally composed of data packets having a header and a payload. The header contains control data for controlling data transfer and is thus responsible for carrying all the information required for performing communication, whereas the payload contains the actual information to be transmitted.
Conversely, data packets transmitted over an on-chip bus are based on specific transaction protocols. For example, the so-called “ST bus” developed by the applicant is based on a “ST bus protocol type 3” using a separate request channel and a response channel to provide communication between an initiator module and a target module.
On on-chip buses, data packets may be transmitted using two separate channels, namely a first channel provided to transfer control data and a second channel provided to transfer actual data to be used by the destination target.
To provide communication, conversion of data should be carried out when data are transferred through a NoC between electronic devices connected to an on-chip bus.
Usually, network interfaces are in particular provided to connect communicating blocks of an integrated circuit to the network and between the on-chip bus and the NoC in order to convert data from one format to another.
For data conversion, the network interfaces are each provided with a memory means in which are stored the packets produced by the network interface before injection in the NoC, the stored packets having a header, comprising control data used to control transfer of data, and a payload, comprising data to be transferred. For example a payload is present in request packets when a store operation is performed
Packet injection is then realized from data stored in the memory means.
According to the type of transaction required, for example, read, write, store, . . . , the payload may have a varying size. The size of the header is generally constant. In addition, depending on the type of transaction, a packet may be deprived of payload.
Beside, when injected within a network-on-chip, the packet is cut into flow control units (flits), namely basic logic units that can be transmitted over a channel in a network-on-chip.
Two constraints may thus be considered. The first one is related to the data bus size of the electronic device connected to the network interface, whereas the other one is related to the flit size univocally fixed inside the NoC.
Consequently, the size of the memory means word may be determined as a function of the data bus size and of the flit size, the size of each word in the memory being equivalent to the maximum between the data bus size and the flit size.
For data conversion, the packet header data are first stored in the memory means, the payload of the packet, when present, being stored in the memory means, at a successive address.
This arrangement may lead to a large latency for data storage and recovery and to a large amount of memory necessary to store the header and payload.
As a matter of fact, when the memory means are arranged in the form of rows and columns of memory addresses to realize a possible size conversion towards the flit size used inside the NoC, the header and payload are stored in successive address columns in order to avoid flits containing possibly a mix of header and payload.
When the memory word size is bigger than the header, if, after having stored the header, a column is not full, the payload is stored in another address column. Accordingly, latency is increased and the storage and recovery of data requires access to an increased amount of address columns, leading to a waste of memory.
Conversely, if the memory word size is smaller than the header, different parts of the header are stored in different columns in successive clock pulses, leading to an increase of the latency.